package Com.Hupochuan.Uil.Util;

import java.util.List;
import java.util.Vector;

public class HashBuffer<Key,Value>{
	
	private List<HashElement<Key,Value>> hashList = new Vector<HashElement<Key,Value>>();
	private int maxSize;
	
	/*
	 * 构造方法
	 */
	public HashBuffer(int maxSize){
		this.maxSize = maxSize;
	}
	
	/*
	 * 存放元素
	 */
	public void put(Key key,Value value){
		
		//存放数据
		HashElement<Key,Value> hashElement = new HashElement<Key,Value>();
		hashElement.setKey(key);
		hashElement.setValue(value);
		hashList.add(hashElement);
		
		//如果数据数量超过最大值
		if(hashList.size() > maxSize){
			for(int i = 0 ; i < (hashList.size() - maxSize) ; i++){
				hashList.remove(0);
			}
		}
	}
	
	/*
	 * 取元素
	 */
	public Value get(Key key){
		Value value = null;
		for(int i = 0 ; i < hashList.size() ; i++){
			HashElement<Key,Value> hashElement = hashList.get(i);
			if(hashElement.getKey().equals(key)){
				//获得数值
				value = hashElement.getValue();
				
				//移动到数组最后
				hashList.remove(i);
				hashList.add(hashElement);
				break;
			}
		}
		return value;
	}
	
	/*
	 * 获得列表形式的Hash
	 */
	public List<HashElement<Key,Value>> getHashList(){
		return hashList;
	}
}
